package com.socool.sinofaith.dao;

import java.util.ArrayList;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

import com.socool.sinofaith.model.QuestionAnswerBean;
import com.socool.sinofaith.model.SifSubTaskBean;
import com.socool.sinofaith.model.SifSubTemplateBean;
import com.socool.sinofaith.util.AndroidSQLiteOpenHelper;

public class SifSubTemplateDao {
	private AndroidSQLiteOpenHelper dbHelper;

	public SifSubTemplateDao(Context context) {
		dbHelper = new AndroidSQLiteOpenHelper(context);
	}

	// 插入记录
	public int insert(SifSubTemplateBean sifSubTemplateBean) {
		Log.i("SQLite", "----insert----");
		SQLiteDatabase db = dbHelper.getWritableDatabase();
		db.beginTransaction();
		try {
			db.execSQL(
					"insert into "
							+ SifSubTemplateBean.TABLENAME
							+ " (Stemp_ID,SubTask_ID,TempNO,Task_ID,IsCare,IsMark,Detail,LastDate,Brand,Model,Color,FinanceDate) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
					new Object[] { sifSubTemplateBean.getStemp_ID(),
							sifSubTemplateBean.getSubTask_ID(),
							sifSubTemplateBean.getTempNO(),
							sifSubTemplateBean.getTask_ID(),
							sifSubTemplateBean.getIsCare(),
							sifSubTemplateBean.getIsMark(),
							sifSubTemplateBean.getDetail(),
							sifSubTemplateBean.getLastDate(),
							sifSubTemplateBean.getBrand(),
							sifSubTemplateBean.getModel(),
							sifSubTemplateBean.getColor(),
							sifSubTemplateBean.getFinanceDate() });
			db.setTransactionSuccessful();
		} catch (Exception e) {
			return 0;
		} finally {
			db.endTransaction();
		}
		db.close();
		return 1;
	}

	// 删除记录
	public int delete(SifSubTemplateBean sifSubTemplateBean) {
		Log.i("SQLite", "----delete----");
		SQLiteDatabase db = dbHelper.getWritableDatabase();
		db.beginTransaction();
		try {
			db.execSQL("delete from " + SifSubTemplateBean.TABLENAME
					+ " where Stemp_ID = ?",
					new Object[] { sifSubTemplateBean.getStemp_ID() });
			db.setTransactionSuccessful();
		} catch (Exception e) {
			return 0;
		} finally {
			db.endTransaction();
		}
		db.close();
		return 1;
	}

	// 根据taskId删除记录
	public int deleteByTaskId(String taskId) {
		Log.i("SQLite", "----delete----");
		SQLiteDatabase db = dbHelper.getWritableDatabase();
		db.beginTransaction();
		try {
			db.execSQL("delete from " + SifSubTemplateBean.TABLENAME
					+ " where Task_ID = ?", new Object[] { taskId });
			db.setTransactionSuccessful();
		} catch (Exception e) {
			return 0;
		} finally {
			db.endTransaction();
		}
		db.close();
		return 1;
	}

	// 更新记录
	public int update(SifSubTemplateBean sifSubTemplateBean) {
		Log.i("SQLite", "----update----");
		SQLiteDatabase db = dbHelper.getWritableDatabase();
		db.beginTransaction();
		try {
			db.execSQL(
					"update "
							+ SifSubTemplateBean.TABLENAME
							+ " set SubTask_ID=?, TempNO=?, Task_ID=?, IsCare=? ,IsMark=? ,Detail=? where Stemp_ID=?",
					new Object[] { sifSubTemplateBean.getSubTask_ID(),
							sifSubTemplateBean.getTempNO(),
							sifSubTemplateBean.getTask_ID(),
							sifSubTemplateBean.getIsCare(),
							sifSubTemplateBean.getIsMark(),
							sifSubTemplateBean.getDetail(),
							sifSubTemplateBean.getStemp_ID() });
			db.setTransactionSuccessful();
		} catch (Exception e) {
			return 0;
		} finally {
			db.endTransaction();
		}
		db.close();
		return 1;
	}

	// 查询记录
	public ArrayList<SifSubTemplateBean> query(String id) {
		Log.i("SQLite", "----query----");
		SQLiteDatabase db = dbHelper.getReadableDatabase();
		Cursor cursor;
		SifSubTemplateBean sifSubTemplateBean;
		ArrayList<SifSubTemplateBean> list = new ArrayList<SifSubTemplateBean>();
		// 若fileId为null或""则查询所有记录
		if (id == null || id.equals("")) {
			cursor = db.rawQuery("select * from "
					+ SifSubTemplateBean.TABLENAME, null);
		} else {
			cursor = db.rawQuery("select * from "
					+ SifSubTemplateBean.TABLENAME + " where Stemp_ID=?",
					new String[] { id });
		}
		while (cursor.moveToNext()) {
			sifSubTemplateBean = new SifSubTemplateBean();
			sifSubTemplateBean.setStemp_ID(cursor.getString(cursor
					.getColumnIndex("Stemp_ID")));
			sifSubTemplateBean.setSubTask_ID(cursor.getString(cursor
					.getColumnIndex("SubTask_ID")));
			sifSubTemplateBean.setTempNO(cursor.getString(cursor
					.getColumnIndex("TempNO")));
			sifSubTemplateBean.setTask_ID(cursor.getString(cursor
					.getColumnIndex("Task_ID")));
			sifSubTemplateBean.setIsCare(cursor.getString(cursor
					.getColumnIndex("IsCare")));
			sifSubTemplateBean.setIsMark(cursor.getString(cursor
					.getColumnIndex("IsMark")));
			sifSubTemplateBean.setDetail(cursor.getString(cursor
					.getColumnIndex("Detail")));
			sifSubTemplateBean.setLastDate(cursor.getString(cursor
					.getColumnIndex("LastDate")));
			sifSubTemplateBean.setBrand(cursor.getString(cursor
					.getColumnIndex("Brand")));
			sifSubTemplateBean.setModel(cursor.getString(cursor
					.getColumnIndex("Model")));
			sifSubTemplateBean.setColor(cursor.getString(cursor
					.getColumnIndex("Color")));
			sifSubTemplateBean.setFinanceDate(cursor.getString(cursor
					.getColumnIndex("FinanceDate")));
			Log.i("SQLite", sifSubTemplateBean.toString());
			list.add(sifSubTemplateBean);
		}
		cursor.close();
		db.close();
		if (list.size() == 0) {
			Log.i("SQLite", "****表中无数据****");
		}
		return list;
	}

	// 自定义查询记录
	public ArrayList<SifSubTemplateBean> queryBySql(String sql) {
		Log.i("SQLite", "----queryBySql----");
		SQLiteDatabase db = dbHelper.getReadableDatabase();
		Cursor cursor;
		SifSubTemplateBean sifSubTemplateBean;
		ArrayList<SifSubTemplateBean> list = new ArrayList<SifSubTemplateBean>();
		cursor = db.rawQuery(sql, null);
		// String temp="";
		// for(int i=0;i<cursor.getColumnNames().length;i++){
		// temp+=cursor.getColumnNames()[i];
		//
		// }
		// temp+="a";
		// Log.i("TAG", temp);
		while (cursor.moveToNext()) {
			sifSubTemplateBean = new SifSubTemplateBean();
			sifSubTemplateBean.setStemp_ID(cursor.getString(cursor
					.getColumnIndex("Stemp_ID")));
			sifSubTemplateBean.setSubTask_ID(cursor.getString(cursor
					.getColumnIndex("SubTask_ID")));
			sifSubTemplateBean.setTempNO(cursor.getString(cursor
					.getColumnIndex("TempNO")));
			sifSubTemplateBean.setTask_ID(cursor.getString(cursor
					.getColumnIndex("Task_ID")));
			sifSubTemplateBean.setIsCare(cursor.getString(cursor
					.getColumnIndex("IsCare")));
			sifSubTemplateBean.setIsMark(cursor.getString(cursor
					.getColumnIndex("IsMark"))); 
			sifSubTemplateBean.setDetail(cursor.getString(cursor
					.getColumnIndex("Detail")));
			sifSubTemplateBean.setBrand(cursor.getString(cursor
					.getColumnIndex("Brand")));
			sifSubTemplateBean.setLastDate(cursor.getString(cursor
					.getColumnIndex("LastDate")));
			sifSubTemplateBean.setModel(cursor.getString(cursor
					.getColumnIndex("Model")));
			sifSubTemplateBean.setColor(cursor.getString(cursor
					.getColumnIndex("Color")));
			sifSubTemplateBean.setFinanceDate(cursor.getString(cursor
					.getColumnIndex("FinanceDate")));

			list.add(sifSubTemplateBean);
		}
		cursor.close();
		db.close();
		if (list.size() == 0) {
		}
		return list;
	}
	
	

	public Long getSifSubTemplateCount(String SubTask_ID) {
		SQLiteDatabase db = dbHelper.getReadableDatabase();
		Cursor cursor;
		String sql = "select  count(*) from " + SifSubTemplateBean.TABLENAME
				+ " where SubTask_ID=" + SubTask_ID;
		cursor = db.rawQuery(sql, null);
		cursor.moveToFirst();
		Long count = cursor.getLong(0);
		cursor.close();

		return count;
	}

}
